home *** CD-ROM | disk | FTP | other *** search
/ Zoom 2 / Zoom - Release 2 (1996)(Active Software)[!].iso / games / think / grac / docs / commands.doc next >
Text File  |  1995-09-14  |  26KB  |  774 lines

  1.  
  2.                           GRAC V2.0 script commands
  3.                           -------------------------
  4.  
  5.    A GRAC script command has up to two parameters, which can be numbers,
  6. flags, or preset variables. Flags are preceded by the '#' symbol, eg. #15 to
  7. mean flag number 15. The preset variables are:
  8.  
  9.    room        - current room
  10.    item        - selected inventory item
  11.    pc          - player's character
  12.    entrance    - last entrance point
  13.    gtime       - time since the game began, in frames
  14.    rtime       - time since the current room was loaded, in frames.
  15.    current     - background/foreground/inventory item/character associated
  16.                  with the script
  17.    string      - string associated with selected object
  18.    height      - height of the selected object
  19.    
  20.    Most parameters can be set by pressing 'Help' after entering the command,
  21. so there is no need to memorise what they all mean.
  22.  
  23.    To insert a comment into a script, begin the line with a '*' character,
  24. then type in the text.
  25.  
  26.    Some old commands have additional comments for GRAC 2.0. These are marked
  27. with an asterisk (*). Some commands are no longer needed and have been
  28. removed from the list. They are described at the end of this file.
  29.  
  30.    This list contains all commands available in this version. It isn't final:
  31. the easiest way to expand GRAC is to add new script commands.
  32.  
  33. Script control
  34. --------------
  35.  
  36. Execute          -              -
  37.  
  38.    Used in verb scripts to carry out the script associated with the selected
  39.    object.
  40.  
  41. Script           script         -
  42.  
  43.    Execute the script, then return to the current position.
  44.  
  45. Set mark         mark number
  46.  
  47.    Sets a mark for use with the 'goto mark' command below. There is no
  48.    limit to the number of marks, but once a mark is set it cannot be
  49.    changed within the same script.
  50.  
  51. Goto mark        mark number
  52.  
  53.    Continue execution from the stated mark. Does not return when the
  54.    script ends.
  55.  
  56.    * A computed goto is possible in GRAC 2.0, by using a flag for the mark
  57.      number. This can be very useful.
  58.      This form of goto only allows you to move within the same script. The
  59.      old (GRAC V1) form allowed jumps into different scripts. This is not
  60.      recommended, so the older form has been removed, though it will still
  61.      work if you really need it.
  62.  
  63. Timer            script         delay
  64.  
  65.    The script is executed after a delay of the stated number of frames. All
  66.    activity continues as normal.
  67.  
  68. Timer off        -              -
  69.  
  70.    Don't bother executing the script after all.
  71.  
  72. Pause            delay
  73.  
  74.    An alternative to the 'timer' command. After the specified delay the
  75.    script continues from the next line.
  76.    WARNING! Don't expect to get back to any previous script if this script
  77.    was started using a 'script' command. Also, don't place a pause in the
  78.    middle of a loop for-next loop or if block. It is really not placing a
  79.    pause in the script but stopping the script and restarting from the next
  80.    line after a delay. You can only have one paused script at a time.
  81.  
  82. Pause off
  83.  
  84.    Cancels the paused script.
  85.  
  86. No default       -              -
  87.  
  88.    As the first line of a script, this stops the verb script from being
  89.    executed. For example, if the verb script tells the character to walk up
  90.    to the object, and you don't want this to happen for a particular object,
  91.    use this command.
  92.  
  93. Compare          value          value
  94.  
  95.    Sets two numbers to be used with the 'if' instruction. Flags can
  96.    be entered using the # symbol, and preset variables can be used.
  97.  
  98. Compare item      flag           value
  99.  
  100.    The current inventory item and either the flag or the value (whichever is
  101.    positive) are set.
  102.  
  103.    * You could just use the compare instruction but then you could not press
  104.      help to choose the item.
  105.  
  106. Compare entry    flag           value
  107.  
  108.    As above, but the point that the player entered the room from is
  109.    compared. This is to have animations etc. dependent on which door the
  110.    player came through.
  111.  
  112.    * You could use the compare instruction but then you could not press help
  113.      to choose the entry point.
  114.  
  115. If               expression     not
  116.  
  117.    The expression compares the two values set with a 'compare' instruction.
  118.    As with all parameters, the expression is represented by a number.
  119.       1 is 'greater than'
  120.       2 is 'greater than or equal to'
  121.       3 is 'equal to'
  122.       4 is 'less than or equal to' 
  123.       5 is 'less than'
  124.    The commands following the 'if' will only be executed if the expression
  125.    is true. If the 'not' parameter is -1 the execution will continue only if
  126.    the expression is false.
  127.  
  128.    This is all a bit complicated so here is an example. Suppose that flag (1)
  129.    holds the value 4 and flag (2) holds 5.
  130.  
  131.    compare           #1       #2
  132.    if                3        0
  133.    bell
  134.    end if
  135.  
  136.    Will the bell ring or not? The answer is no because expression 3 is
  137.    'equal to' and flag (1) is not equal to flag (2).
  138.  
  139.    If the following were used instead the bell would ring.
  140.  
  141.    compare           #1       #2
  142.    if                5        0
  143.    bell
  144.    end if
  145.  
  146. End if           -              -
  147.  
  148.    This marks the end of an if block. An if block begins with the command
  149.    'if' and ends with 'end if'. If blocks within if blocks are allowed.
  150.  
  151. Else if          expression     not
  152.  
  153.    Used within an if block. 'compare' commands are always executed
  154.    regardless of if's, so 'else if' can use a different test to the original
  155.    if.
  156.  
  157. Else             -              -
  158.  
  159.    Used before the end of an if block, if no expressions have been true in
  160.    the entire block then execution continues from here.
  161.  
  162. For              flag           start value
  163.  
  164. Next             limit          -
  165.  
  166.    The flag is set to the start value, and the commands between 'for' and
  167.    'next' are repeated, incrementing the flag by one each time, until the
  168.    limit is reached.
  169.    Note that 'flag' is just a number, without a '#'.
  170.  
  171. Wait             frames         -
  172.  
  173.    Wait for the specified number of frames. A frame lasts one tenth of a
  174.    second unless the game is slowed down by too many objects on screen.
  175.  
  176. Wait click       frames         -
  177.  
  178.    Waits for a mouse click, or the specified number of frames, whichever
  179.    comes sooner. If 'frames' is zero, GRAC will wait for a mouse click.
  180.  
  181. End
  182.  
  183.    Ends the current script.
  184.  
  185. Quit
  186.  
  187.    Quits from the game.
  188.  
  189. Screen control
  190. --------------
  191.  
  192. Hide             -              -
  193.  
  194.    Both the mouse pointer and the control panel disappear.
  195.  
  196. Show             -              -
  197.  
  198.    Brings back the control panel and mouse pointer.
  199.  
  200. Show picture     -              -
  201.  
  202.    Loads and displays a picture. This is useful for title screens.
  203.  
  204. Picture off      -              -
  205.  
  206.    Removes a picture displayed using 'Show picture'.
  207.  
  208. Load palette     picture        -
  209.  
  210.    Loads the picture purely to use the palette. It is not displayed, but
  211.    does use memory so it is best to use small screens for this purpose.
  212.  
  213. Control palette  picture        -
  214.  
  215.    As the above command, but the palette will be used for the control panel.
  216.  
  217. Fade             speed          -
  218.  
  219.    Fades into the palette loaded as described above. The fade takes speed*15
  220.    1/50ths of a second.
  221.  
  222. Fade in          -              -
  223.  
  224.    When a startup script begins, the display is not visible until either the
  225.    end of the script, or this command.
  226.  
  227. Fade picture     speed          -
  228.  
  229.    Fades a picture to black.
  230.  
  231. Fade control     speed          -
  232.  
  233.    Fades the palette of the control panel into the one loaded with 'control
  234.    palette'.
  235.  
  236. Flash            colour         string
  237.  
  238.    The string contains information used to change the colour in a rapid
  239.    sequence. Useful for animation effects. The string has the form
  240.  
  241.    (RGB,delay)(RGB,delay)....
  242.  
  243.    RGB sets the red, green and blue components of the colour, from 0 to F
  244.    (This is in hexadecimal, where the sequence of numbers is 0,1,2,3,4,5,6
  245.    7,8,9,A,B,C,D,E,F)
  246.    For example, 000 is black, F00 is bright red, 888 is grey and FFF is
  247.    white.
  248.    Delay sets the time until the colour is changed again, in 1/50ths of a
  249.    second. Therefore, multiply by five to have the delay in frames.
  250.  
  251. Cycle            first colour   last colour
  252.  
  253.    The colours between the two values are cycled, just like the colour
  254.    cycling in Dpaint.
  255.  
  256. Cycle off
  257.  
  258.    Stops colour cycling.
  259.  
  260. Scroll off
  261.  
  262.    Stops automatic scrolling of the screen.
  263.  
  264. Scroll on
  265.  
  266.    Restarts screen scrolling.
  267.  
  268. Scroll           X distance     Y distance
  269.  
  270.    Scrolls a specified distance in the X and Y directions.     
  271.  
  272. Character control
  273. -----------------
  274.  
  275. Go               character      -
  276.  
  277.    Also used by verb scripts to make the character walk to the selected
  278.    object. As with all character parameters, -1 means the player's character.
  279.    If the selected object is a character, the player's character will attempt
  280.    to walk to a point in front of the other character. If an object does not
  281.    have a base, it will be impossible to execute a 'go' command.
  282.  
  283.    * You can now use the letters pc to indicate the player's character
  284.      instead of -1.
  285.  
  286. Walk off         -              -
  287.  
  288.    Stops the player from moving.
  289.  
  290. Walk on          -              -
  291.  
  292.    Allows the player to move again following a 'walk off' command.
  293.  
  294. Wait stop        character      -
  295.  
  296.    Wait for the character to reach the point they're heading to. If zero
  297.    (0) is entered as the character number, it will be possible to interrupt
  298.    the walk with a mouse click.
  299.  
  300.    * Previously, if -1 was used to indicate the player's character, the
  301.      movement could be interrupted with a mouse click. In GRAC 2 it is
  302.      possible to have more than one player character, so I had to change
  303.      this. 
  304.  
  305. Stop             character      -
  306.  
  307.    Stops the character moving.
  308.  
  309. Place character  character      point
  310.  
  311.    Puts the character at the point.
  312.  
  313. Hide character   character      -
  314.  
  315.    The character disappears.
  316.  
  317. Walk             character      point
  318.  
  319.    The character walks to the point.
  320.  
  321. Reach            character      height
  322.  
  323.    The character reaches at the chosen height, where 1=low, 2=middle,
  324.    3=high and -1 to use the default for the current object.
  325.  
  326. Take             character      foreground object
  327.  
  328.    The character reaches for the object, the object disappears and is added
  329.    to the characters inventory. -1 for the object indicates the currently
  330.    selected object. For this to work the object must have a negative flag
  331.    and the 'take' option must be set to the appropriate inventory item.
  332.  
  333.    * In GRAC 2 you can enter 'object' instead of -1
  334.  
  335. Face             character      direction
  336.  
  337.    The character faces the specified direction. 1=right, 2=left, 3=in,
  338.    4=out
  339.  
  340. Add item         item           character
  341.  
  342.    The chosen item is added to the characters inventory.
  343.  
  344. Drop item        item           character
  345.  
  346.    As above, but the item is dropped. Actually it just vanishes.
  347.  
  348. Character frame  character      image
  349.  
  350.    Change the animation frame of a character. The image as grabbed in the
  351.    character editor.
  352.  
  353. Body frame       character      image
  354.  
  355.    As above, but the image should have no head, which will be added
  356.    separately. This is to allow characters to speak when not in a standing
  357.    position.
  358.  
  359. Character change character (a)  character (b)
  360.  
  361.    Character (a) takes on the appearance of character (b). The effect is 
  362.    preserved until the characters are reloaded with a new object bank. This
  363.    command is ideal for changes of clothing etc.
  364.  
  365. Switch           character      -
  366.  
  367.    Puts the player in control of a different character.
  368.   
  369. Say              character      string
  370.  
  371.    The character says the string, which appears above the characters head
  372.    while the characters head is animated. As with print, @ starts a new
  373.    line. The text is also split at full stops, question marks and exclamation
  374.    marks. This is because text looks very odd if it is not split at natural 
  375.    points in the string.
  376.  
  377.    * In GRAC 2 you can animate the character from within the string. Begin
  378.      the string with a '¶' symbol (alt-p), then include the animation
  379.      in the form (frame,delay)(frame,delay)........ where 'frame' is the 
  380.      image number as in the character editor and 'delay' is the number of
  381.      screen updates until the next image. Finish with another '¶' then type
  382.      what the character actually says. You can include animation at the start
  383.      of a new line as well, after the '@'.
  384.  
  385.      eg.  ¶(56,1)(57,1)(58,1)(,56,1)(57,1)(58,1)¶I'm waving my arms about.
  386.  
  387. Voice            string         point
  388.  
  389.    The string appears above the point, but it is not necessary to have a
  390.    character there to say it. If 'point' is zero, the coordinates set
  391.    using the 'position voice' command will be used instead. This is to
  392.    allow voices to be used on screens which have no points, such as a
  393.    close up.
  394.  
  395. Set voice        colour         height
  396.  
  397.    This sets the colour of the voice text, and the height above the point,
  398.    in pixels.
  399.  
  400. Position voice   X position     Y position
  401.  
  402.    Sets the position used for voice text.
  403.  
  404. Animation
  405. ---------
  406.  
  407. Object frame     f. object      image
  408.  
  409.    The object's image is changed. Warning: this is not permanent. If the
  410.    player leaves the room and returns, the object will change back to its
  411.    original image. If you don't want this to happen, change the object in
  412.    the room's startup script.
  413.  
  414. Anim             f. object      string
  415.  
  416.    Animates the object according to the contents of the string, which must
  417.    have the following form:
  418.  
  419.    (X position,Y position,image)(X position,Y position,image)....
  420.  
  421.    Amal (see below) can also be used to animate objects. However, I
  422.    reccommend that you use Anim instead. The main advantage over amal is
  423.    that you can create the string using a point-and-click method by pressing
  424.    help. It is also fully compatible with the save/load feature, even if the
  425.    animation doesn't loop. The maximum number of frames is 100. Like
  426.    'object frame', anims have no permanent effect.
  427.  
  428. Amal             f. object      string
  429.  
  430.    The most versatile way to animate an object. If you use AMOS then you
  431.    will probably be familiar with Amal. If not, this is how to use it. I
  432.    can't cover everything; the AMOS manual has an entire chapter on Amal,
  433.    but the basics are as follows:
  434.  
  435.    The object will be animated according to a set of instructions held in
  436.    the string, separated with semi-colons ( ; ). Each instruction is a
  437.    single upper-case letter, followed by some parameters. Any lower case
  438.    letter are optional.
  439.  
  440.    Move across,down,steps
  441.  
  442.       Moves the object across and down the number of pixels specified in the
  443.       number of steps selected. Each step takes one frame to perform.
  444.  
  445.    Anim number,(image+RZ,delay)(image+RZ,delay)....
  446.  
  447.       Animates the object by cycling through the images the set number of
  448.       times. A value of zero for the number means to repeat continuously.
  449.       Delay can be any number greater than zero and is the number of frames
  450.       to wait before moving on to the next image. This command is ideal for
  451.       adding background animations such as dripping taps and flashing lights.
  452.       RZ is a register. Read the note below.
  453.  
  454.    Let register=expression
  455.  
  456.       The register is set according to the expression. The registers are:
  457.       R0 to R9, internal registers which are different for every object,
  458.       RA to RZ, global registers for passing information between objects,
  459.       X, the objects X-position
  460.       Y, the objects Y-position
  461.       A, the objects image. This may be different to the image number used
  462.          by GRAC. To get the actual image, add RZ to GRAC's image number.
  463.  
  464.       Example: L R0=3; sets internal register 0 to a value of 3.
  465.  
  466.    For register=start To end ;.....;Next register
  467.  
  468.       This is a For...Next loop similar to those used in scripts. The
  469.       register begins at <start> and is increased by 1 each loop until it
  470.       reaches <end>.
  471.  
  472.    Jump label
  473.  
  474.       Amal jumps to the specified label. A label is a single capital letter
  475.       followed by a colon ( : ), which can be anywhere in the string.
  476.  
  477.    Pause
  478.  
  479.       Waits for one update.
  480.  
  481.    End
  482.  
  483.       Ends the Amal program.
  484.  
  485.    There are many more Amal commands. Refer to the AMOS manual for details.
  486.    You should really only use repeating strings (with a Jump at the end) or
  487.    continuous Anims to be compatible with the save/load feature. This is 
  488.    because when a game is loaded the Amal string is always started from the
  489.    beginning.
  490.  
  491.    * The Anim command is usually better than Amal. Use it instead if
  492.      possible.
  493.  
  494. Paste            b. object      image
  495.  
  496.    Paste the image over the background object. This method of animation is
  497.    quicker and uses less memory than with foreground objects. However, once
  498.    pasted, the image cannot be deleted except by pasting another image over
  499.    the top. Only one image may be pasted per frame, except in a startup-
  500.    script when the display has not been faded in.
  501.    This is not a permanent effect (see object frame).
  502.  
  503. Freeze           -              -
  504.  
  505.    Stops all animation until an 'unfreeze' command is encountered. Note that
  506.    'wait' allows animation to continue, stopping only the script. This
  507.    command freezes the display and lets the script continue. However, the 
  508.    'paste' command cannot be frozen, only objects and characters.
  509.  
  510. Unfreeze         -              -
  511.  
  512.    See above.
  513.  
  514. Play anim        animation      delay
  515.  
  516.    Plays iff animation, with the delay between frames in 1/50ths of a
  517.    second.
  518.  
  519. Limbo            -              -
  520.  
  521.    Useful when playing large animations, this command clears all non-
  522.    essential data from memory. A 'load room' command is required to
  523.    continue with the game.
  524.  
  525. Sound
  526. -----
  527.  
  528. Bell             -              -
  529.  
  530.    This command makes a bell sound. It is useful mainly when debugging, to
  531.    make sure that part of a script is actually executing.
  532.  
  533. Sound left       sample         frequency
  534.  
  535.    The sample is played through the left speaker (channel 0)
  536.  
  537. Sound right      sample         frequency
  538.  
  539.    As above but uses channel 1
  540.  
  541. Sound centre     sample         frequency
  542.  
  543.    Sound through channels 0 and 1 simultaneously.
  544.  
  545. Sound back       sample         frequency
  546.  
  547.    Sound through  channels 2 and 3, looped. This is intended for background
  548.    noise.
  549.  
  550. Load sample      sample         -
  551.  
  552.    Usually, samples are loaded when they are played. Use this command to
  553.    load a sample in advance. Don't load too many samples as this uses
  554.    memory.
  555.  
  556. Erase sample     sample         -
  557.  
  558.    The sample is erased, saving memory.
  559.  
  560. ST play          pattern        loop
  561.  
  562.    Starts soundtracker music playing from the specified pattern. The music
  563.    will loop indefinitely (unless stated otherwise in the song itself) and
  564.    is fully compatible with samples. Music is suspended on the necessary
  565.    channels until the sample ends. If 'loop' is zero, the music is assumed to 
  566.    be looping continuously and will be restarted if a saved game is loaded.
  567.    Otherwise, the music will not be restarted if a game is loaded.
  568.  
  569. Music stop
  570.  
  571.    Stops the music.
  572.  
  573. Miscellaneous
  574. -------------
  575.  
  576. Load room        room           point
  577.  
  578.    Loads a room and positions the PC at the specified point.
  579.  
  580. Scale         percentage
  581.  
  582.    Sets the overall scaling factor for all characters in the room, as a 
  583.    percentage of full size. Characters can only be reduced in size, so the 
  584.    percentage must less than 100. There is a minimum scaling factor of 25%,
  585.    because characters drawn smaller than this are just not recognisable.
  586.    Using this command you could have a large scene with tiny characters
  587.    in it (Future Wars style), or even write a computer version of 'The
  588.    Incredible Shrinking Man'. When combined with the 'perspective' command,
  589.    virtually any type of scene could be created.
  590.    One problem I have found is that when animating scaled characters, they
  591.    tend to wobble around a bit unless the animation frames are precisely
  592.    the same size. This applies especially to talking frames. This is not a
  593.    bug but a side effect of the scaling process.
  594.  
  595. Perspective      floor          horizon
  596.  
  597.    Turns on character scaling for the room, dependent on Y position. 'floor'
  598.    and 'horizon' are Y positions on the screen. Below 'floor', characters
  599.    are drawn full size. Above 'horizon' they are drawn at minimum size (1/4
  600.    full size). In between these positions they are scaled proportionally.
  601.    Note that neither 'floor' nor 'horizon' need actually be placed in the
  602.    visible area of the screen, and negative values are allowed.
  603.    The HEIGHT of a zone affects the scaling. Thus you can have a character
  604.    climb up to a higher level without being reduced in size, or put the
  605.    perspective in reverse for wierd camera angles.
  606.  
  607. Static         f.object
  608.  
  609.    This command can be used to speed up the screen update in rooms with
  610.    a lot of objects. If an object is never going to move, it can be drawn
  611.    quicker by not replacing the background underneath it. Simply use
  612.    this command in the startup script, before the screen is faded in.
  613.    By making objects static, you can have more of them on screen without
  614.    causing the game to run at snail's pace.
  615.  
  616. Close up         close up       -
  617.  
  618.    Begins a close up.
  619.  
  620. Exit close up    -              -
  621.  
  622.    Leaves the close up.
  623.  
  624. Choice           string         flag
  625.  
  626.    Adds a choice to the current selection if the flag is true (flag zero is
  627.    always true, remember). The obvious use for this feature is to create
  628.    multiple choice conversations. The maximum number of choices is 10.
  629.    Note that 'flag' is just a number, without a '#'.
  630.  
  631. Choose           flag           character
  632.  
  633.    The player must choose between all available choices by clicking on the
  634.    string which is printed in the text window. The flag is then set to
  635.    whatever choice was made (ie. 1 for the first choice, 2 for the second
  636.    etc.) All choices are then cleared. If the character parameter is not 
  637.    zero, that character will now say the selected string.
  638.    Note that 'flag' is just a number, without a '#'.
  639.  
  640. Set flag         flag           value
  641.  
  642.    Sets the flag to the value. This may cause objects or walk zones to
  643.    disappear if they are dependent on the flag. Any such change is
  644.    permanent (until the flag is changed again).
  645.    Note that 'flag' is just a number, without a '#'.
  646.  
  647. Clear flags      first          last
  648.  
  649.    Sets all flags between the 'first' and 'last' to zero.
  650.  
  651. Toggle flag      flag           -
  652.  
  653.    If the flag is zero, it is set to one. Otherwise it is set to zero.
  654.    Note that 'flag' is just a number, without a '#'.
  655.  
  656. Random           flag           limit
  657.  
  658.    The flag is set to a random number, up to the allowed limit. If the limit
  659.    is negative, the random number may be positive or negative. Otherwise it
  660.    will always be positive.
  661.    Note that 'flag' is just a number, without a '#'.
  662.  
  663. Add              flag           value
  664.  
  665.    Adds the value to the flag.
  666.    Note that 'flag' is just a number, without a '#'.
  667.  
  668. Subtract         flag           value
  669.  
  670.    Subtracts the value from the flag.
  671.    Note that 'flag' is just a number, without a '#'.
  672.  
  673. Flag to string   string         flag
  674.  
  675.    The string is changed to the digits of the flag. See the note for 'Set 
  676.    string' below.
  677.    Note that 'flag' is just a number, without a '#'.
  678.  
  679. Set string       string (a)     string (b)
  680.  
  681.    String (a) is set to string (b). Remember that the string will not
  682.    actually be changed until the game runs and the script is executed.
  683.    With the text editor you set the initial strings. Also, no text strings 
  684.    are saved with saved games, so don't use this command to change strings 
  685.    that you intend to use later, only in the same script.
  686.  
  687. Clear string     string         -
  688.  
  689.    The string is cleared. See the note for 'Set string'.
  690.  
  691. Add string       string (a)     string (b)
  692.  
  693.    String (b) is appended to string (a). See the note for 'Set string'.
  694.  
  695. Print            string         -
  696.  
  697.    The specified string is printed in the text window. Remember that the
  698.    parameter is actually a number, which refers to a text string. -1 for
  699.    the string indicates the description of the selected object.
  700.    An '@' character indicates the start of a new line.
  701.  
  702.    * In GRAC 2.0 you can use the word 'string' instead of -1
  703.  
  704. Save off         -              -
  705.  
  706.    Disables the save game feature.
  707.  
  708. Save on          -              -
  709.  
  710.    Allows games to be saved.
  711.  
  712. Verb off         verb           -
  713.  
  714.    Stops the  verb from being used
  715.  
  716. Verb on          verb           -
  717.  
  718.    Allows the verb to be used.   
  719.  
  720. Restart
  721.  
  722.    Starts the game again from the beginning.
  723.  
  724. Quit
  725.  
  726.    Quits from the game.
  727.  
  728. *****************************************************************************
  729.  
  730. For various reasons, the following commands are now obsolete. They still
  731. work, but only for compatibility with earlier versions of GRAC. You should
  732. never use them.
  733.  
  734. Goto             script         line
  735.  
  736.    Continue execution from any line in any script. Does not return when the
  737.    script ends.
  738.  
  739. Link             script         line
  740.  
  741.    This is not quite the same as goto. The program continues from the stated
  742.    script and line but will do so even if the link is in the middle of an if
  743.    block which is not being executed. This command is used to effectively
  744.    join scripts together to make a longer one.
  745.  
  746. Compare flag     flag (a)       flag (b)
  747.  
  748.    This sets flags (a) and (b) for use with the 'if' instruction.
  749.    WARNING: do not confuse this with 'compare value'.
  750.  
  751. Compare value    flag           value
  752.  
  753.    Similar to the above instruction but sets a flag and a number.
  754.  
  755. Add flag         flag (a)       flag (b)
  756.  
  757.    Flag (b) is added to flag (a).
  758.  
  759. Subtract flag    flag (a)       flag (b)
  760.  
  761.    Subtracts flag (b) from flag (a).
  762.  
  763. Copy flag        flag (a)       flag (b)
  764.  
  765.    Flag (a) is set to the value of flag (b).
  766.  
  767. Med play has been removed, because: 1) it didn't work very well, 2) it was
  768. taking up unnecessary memory when not being used, and 3) as copyrighted
  769. software, it is of dubious legality to include it.
  770.  
  771. 'Select' and 'End select' never worked in the first place. They were included
  772. in the original documentation by mistake!
  773.  
  774.